home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / Lists.p < prev    next >
Encoding:
Text File  |  1998-02-12  |  10.5 KB  |  350 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Lists.p
  3.  
  4.      Contains:    List Manager Interfaces.
  5.  
  6.      Version:    Technology:    Mac OS 8
  7.                  Release:    Universal Interfaces 3.1
  8.  
  9.      Copyright:    © 1985-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Lists;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __LISTS__}
  28. {$SETC __LISTS__ := 1}
  29.  
  30. {$I+}
  31. {$SETC ListsIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __MACTYPES__}
  35. {$I MacTypes.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __CONTROLS__}
  38. {$I Controls.p}
  39. {$ENDC}
  40.  
  41.  
  42. {$PUSH}
  43. {$ALIGN MAC68K}
  44. {$LibExport+}
  45.  
  46.  
  47. TYPE
  48.     Cell                                = Point;
  49.     CellPtr                             = ^Cell;
  50.     ListBounds                            = Rect;
  51.     ListBoundsPtr                         = ^ListBounds;
  52.     DataArray                            = PACKED ARRAY [0..32000] OF CHAR;
  53.     DataPtr                                = ^DataArray;
  54.     DataHandle                            = ^DataPtr;
  55. {$IFC TYPED_FUNCTION_POINTERS}
  56.     ListSearchProcPtr = FUNCTION(aPtr: Ptr; bPtr: Ptr; aLen: INTEGER; bLen: INTEGER): INTEGER;
  57. {$ELSEC}
  58.     ListSearchProcPtr = ProcPtr;
  59. {$ENDC}
  60.  
  61. {$IFC TYPED_FUNCTION_POINTERS}
  62.     ListClickLoopProcPtr = FUNCTION: BOOLEAN;
  63. {$ELSEC}
  64.     ListClickLoopProcPtr = Register68kProcPtr;
  65. {$ENDC}
  66.  
  67.     ListSearchUPP = UniversalProcPtr;
  68.     ListClickLoopUPP = UniversalProcPtr;
  69. {$IFC NOT TARGET_OS_MAC }
  70. { QuickTime 3.0 }
  71.     ListNotification                    = LONGINT;
  72.  
  73. CONST
  74.     listNotifyNothing            = 'nada';                        {  No (null) notification }
  75.     listNotifyClick                = 'clik';                        {  Control was clicked }
  76.     listNotifyDoubleClick        = 'dblc';                        {  Control was double-clicked }
  77.     listNotifyPreClick            = 'pclk';                        {  Control about to be clicked }
  78.  
  79. {$ENDC}
  80.  
  81.  
  82. TYPE
  83.     ListRecPtr = ^ListRec;
  84.     ListRec = RECORD
  85.         rView:                    Rect;
  86.         port:                    GrafPtr;
  87.         indent:                    Point;
  88.         cellSize:                Point;
  89.         visible:                ListBounds;
  90.         vScroll:                ControlHandle;
  91.         hScroll:                ControlHandle;
  92.         selFlags:                SInt8;
  93.         lActive:                BOOLEAN;
  94.         lReserved:                SInt8;
  95.         listFlags:                SInt8;
  96.         clikTime:                LONGINT;
  97.         clikLoc:                Point;
  98.         mouseLoc:                Point;
  99.         lClickLoop:                ListClickLoopUPP;
  100.         lastClick:                Cell;
  101.         refCon:                    LONGINT;
  102.         listDefProc:            Handle;
  103.         userHandle:                Handle;
  104.         dataBounds:                ListBounds;
  105.         cells:                    DataHandle;
  106.         maxIndex:                INTEGER;
  107.         cellArray:                ARRAY [0..0] OF INTEGER;
  108.     END;
  109.  
  110.     ListPtr                                = ^ListRec;
  111.     ListHandle                            = ^ListPtr;
  112. {  ListRef is obsolete.  Use ListHandle.  }
  113.     ListRef                                = ListHandle;
  114.  
  115.  
  116.  
  117. CONST
  118.                                                                 {  ListRec.listFlags bits }
  119.     lDoVAutoscrollBit            = 1;
  120.     lDoHAutoscrollBit            = 0;
  121.  
  122.                                                                 {  ListRec.listFlags masks }
  123.     lDoVAutoscroll                = 2;
  124.     lDoHAutoscroll                = 1;
  125.  
  126.  
  127.                                                                 {  ListRec.selFlags bits }
  128.     lOnlyOneBit                    = 7;
  129.     lExtendDragBit                = 6;
  130.     lNoDisjointBit                = 5;
  131.     lNoExtendBit                = 4;
  132.     lNoRectBit                    = 3;
  133.     lUseSenseBit                = 2;
  134.     lNoNilHiliteBit                = 1;
  135.  
  136.  
  137.                                                                 {  ListRec.selFlags masks }
  138.     lOnlyOne                    = -128;
  139.     lExtendDrag                    = 64;
  140.     lNoDisjoint                    = 32;
  141.     lNoExtend                    = 16;
  142.     lNoRect                        = 8;
  143.     lUseSense                    = 4;
  144.     lNoNilHilite                = 2;
  145.  
  146.  
  147.                                                                 {  LDEF messages }
  148.     lInitMsg                    = 0;
  149.     lDrawMsg                    = 1;
  150.     lHiliteMsg                    = 2;
  151.     lCloseMsg                    = 3;
  152.  
  153.  
  154.  
  155.  
  156.  
  157. TYPE
  158. {$IFC TYPED_FUNCTION_POINTERS}
  159.     ListDefProcPtr = PROCEDURE(lMessage: INTEGER; lSelect: BOOLEAN; VAR lRect: Rect; lCell: Cell; lDataOffset: INTEGER; lDataLen: INTEGER; lHandle: ListHandle);
  160. {$ELSEC}
  161.     ListDefProcPtr = ProcPtr;
  162. {$ENDC}
  163.  
  164.     ListDefUPP = UniversalProcPtr;
  165.  
  166. CONST
  167.     uppListSearchProcInfo = $00002BE0;
  168.     uppListClickLoopProcInfo = $00000012;
  169.     uppListDefProcInfo = $000EBD80;
  170.  
  171. FUNCTION NewListSearchProc(userRoutine: ListSearchProcPtr): ListSearchUPP;
  172.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  173.     INLINE $2E9F;
  174.     {$ENDC}
  175.  
  176. FUNCTION NewListClickLoopProc(userRoutine: ListClickLoopProcPtr): ListClickLoopUPP;
  177.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  178.     INLINE $2E9F;
  179.     {$ENDC}
  180.  
  181. FUNCTION NewListDefProc(userRoutine: ListDefProcPtr): ListDefUPP;
  182.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  183.     INLINE $2E9F;
  184.     {$ENDC}
  185.  
  186. FUNCTION CallListSearchProc(aPtr: Ptr; bPtr: Ptr; aLen: INTEGER; bLen: INTEGER; userRoutine: ListSearchUPP): INTEGER;
  187.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  188.     INLINE $205F, $4E90;
  189.     {$ENDC}
  190.  
  191. FUNCTION CallListClickLoopProc(userRoutine: ListClickLoopUPP): BOOLEAN;
  192.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  193.     {To be implemented:  Glue to move parameters into registers.}
  194.     {$ENDC}
  195.  
  196. PROCEDURE CallListDefProc(lMessage: INTEGER; lSelect: BOOLEAN; VAR lRect: Rect; lCell: Cell; lDataOffset: INTEGER; lDataLen: INTEGER; lHandle: ListHandle; userRoutine: ListDefUPP);
  197.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  198.     INLINE $205F, $4E90;
  199.     {$ENDC}
  200.  
  201.  
  202. {$IFC NOT TARGET_OS_MAC }
  203. { QuickTime 3.0 }
  204.  
  205. TYPE
  206. {$IFC TYPED_FUNCTION_POINTERS}
  207.     ListNotificationProcPtr = PROCEDURE(theList: ListHandle; notification: ListNotification; param: LONGINT);
  208. {$ELSEC}
  209.     ListNotificationProcPtr = ProcPtr;
  210. {$ENDC}
  211.  
  212. PROCEDURE LSetNotificationCallback(callBack: ListNotificationProcPtr; lHandle: ListHandle); C;
  213. {$ENDC}
  214.  
  215.  
  216.  
  217. FUNCTION LNew({CONST}VAR rView: Rect; {CONST}VAR dataBounds: ListBounds; cSize: Point; theProc: INTEGER; theWindow: WindowPtr; drawIt: BOOLEAN; hasGrow: BOOLEAN; scrollHoriz: BOOLEAN; scrollVert: BOOLEAN): ListHandle;
  218.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  219.     INLINE $3F3C, $0044, $A9E7;
  220.     {$ENDC}
  221. PROCEDURE LDispose(lHandle: ListHandle);
  222.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  223.     INLINE $3F3C, $0028, $A9E7;
  224.     {$ENDC}
  225. FUNCTION LAddColumn(count: INTEGER; colNum: INTEGER; lHandle: ListHandle): INTEGER;
  226.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  227.     INLINE $3F3C, $0004, $A9E7;
  228.     {$ENDC}
  229. FUNCTION LAddRow(count: INTEGER; rowNum: INTEGER; lHandle: ListHandle): INTEGER;
  230.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  231.     INLINE $3F3C, $0008, $A9E7;
  232.     {$ENDC}
  233. PROCEDURE LDelColumn(count: INTEGER; colNum: INTEGER; lHandle: ListHandle);
  234.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  235.     INLINE $3F3C, $0020, $A9E7;
  236.     {$ENDC}
  237. PROCEDURE LDelRow(count: INTEGER; rowNum: INTEGER; lHandle: ListHandle);
  238.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  239.     INLINE $3F3C, $0024, $A9E7;
  240.     {$ENDC}
  241. FUNCTION LGetSelect(next: BOOLEAN; VAR theCell: Cell; lHandle: ListHandle): BOOLEAN;
  242.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  243.     INLINE $3F3C, $003C, $A9E7;
  244.     {$ENDC}
  245. FUNCTION LLastClick(lHandle: ListHandle): Cell;
  246.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  247.     INLINE $3F3C, $0040, $A9E7;
  248.     {$ENDC}
  249. FUNCTION LNextCell(hNext: BOOLEAN; vNext: BOOLEAN; VAR theCell: Cell; lHandle: ListHandle): BOOLEAN;
  250.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  251.     INLINE $3F3C, $0048, $A9E7;
  252.     {$ENDC}
  253. FUNCTION LSearch(dataPtr: UNIV Ptr; dataLen: INTEGER; searchProc: ListSearchUPP; VAR theCell: Cell; lHandle: ListHandle): BOOLEAN;
  254.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  255.     INLINE $3F3C, $0054, $A9E7;
  256.     {$ENDC}
  257. PROCEDURE LSize(listWidth: INTEGER; listHeight: INTEGER; lHandle: ListHandle);
  258.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  259.     INLINE $3F3C, $0060, $A9E7;
  260.     {$ENDC}
  261. PROCEDURE LSetDrawingMode(drawIt: BOOLEAN; lHandle: ListHandle);
  262.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  263.     INLINE $3F3C, $002C, $A9E7;
  264.     {$ENDC}
  265. PROCEDURE LScroll(dCols: INTEGER; dRows: INTEGER; lHandle: ListHandle);
  266.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  267.     INLINE $3F3C, $0050, $A9E7;
  268.     {$ENDC}
  269. PROCEDURE LAutoScroll(lHandle: ListHandle);
  270.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  271.     INLINE $3F3C, $0010, $A9E7;
  272.     {$ENDC}
  273. PROCEDURE LUpdate(theRgn: RgnHandle; lHandle: ListHandle);
  274.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  275.     INLINE $3F3C, $0064, $A9E7;
  276.     {$ENDC}
  277. PROCEDURE LActivate(act: BOOLEAN; lHandle: ListHandle);
  278.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  279.     INLINE $4267, $A9E7;
  280.     {$ENDC}
  281. PROCEDURE LCellSize(cSize: Point; lHandle: ListHandle);
  282.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  283.     INLINE $3F3C, $0014, $A9E7;
  284.     {$ENDC}
  285. FUNCTION LClick(pt: Point; modifiers: INTEGER; lHandle: ListHandle): BOOLEAN;
  286.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  287.     INLINE $3F3C, $0018, $A9E7;
  288.     {$ENDC}
  289. PROCEDURE LAddToCell(dataPtr: UNIV Ptr; dataLen: INTEGER; theCell: Cell; lHandle: ListHandle);
  290.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  291.     INLINE $3F3C, $000C, $A9E7;
  292.     {$ENDC}
  293. PROCEDURE LClrCell(theCell: Cell; lHandle: ListHandle);
  294.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  295.     INLINE $3F3C, $001C, $A9E7;
  296.     {$ENDC}
  297. PROCEDURE LGetCell(dataPtr: UNIV Ptr; VAR dataLen: INTEGER; theCell: Cell; lHandle: ListHandle);
  298.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  299.     INLINE $3F3C, $0038, $A9E7;
  300.     {$ENDC}
  301. PROCEDURE LRect(VAR cellRect: Rect; theCell: Cell; lHandle: ListHandle);
  302.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  303.     INLINE $3F3C, $004C, $A9E7;
  304.     {$ENDC}
  305. PROCEDURE LSetCell(dataPtr: UNIV Ptr; dataLen: INTEGER; theCell: Cell; lHandle: ListHandle);
  306.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  307.     INLINE $3F3C, $0058, $A9E7;
  308.     {$ENDC}
  309. PROCEDURE LSetSelect(setIt: BOOLEAN; theCell: Cell; lHandle: ListHandle);
  310.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  311.     INLINE $3F3C, $005C, $A9E7;
  312.     {$ENDC}
  313. PROCEDURE LDraw(theCell: Cell; lHandle: ListHandle);
  314.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  315.     INLINE $3F3C, $0030, $A9E7;
  316.     {$ENDC}
  317.  
  318. PROCEDURE LGetCellDataLocation(VAR offset: INTEGER; VAR len: INTEGER; theCell: Cell; lHandle: ListHandle);
  319.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  320.     INLINE $3F3C, $0034, $A9E7;
  321.     {$ENDC}
  322. {$IFC NOT TARGET_OS_MAC }
  323. { QuickTime 3.0 }
  324. PROCEDURE LSetLDEF(proc: ListDefProcPtr; lHandle: ListRef); C;
  325. {$ENDC}
  326.  
  327.  
  328. {$IFC OLDROUTINENAMES }
  329. PROCEDURE LDoDraw(drawIt: BOOLEAN; lHandle: ListHandle);
  330.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  331.     INLINE $3F3C, $002C, $A9E7;
  332.     {$ENDC}
  333. PROCEDURE LFind(VAR offset: INTEGER; VAR len: INTEGER; theCell: Cell; lHandle: ListHandle);
  334.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  335.     INLINE $3F3C, $0034, $A9E7;
  336.     {$ENDC}
  337. {$ENDC}  {OLDROUTINENAMES}
  338.  
  339.  
  340. {$ALIGN RESET}
  341. {$POP}
  342.  
  343. {$SETC UsingIncludes := ListsIncludes}
  344.  
  345. {$ENDC} {__LISTS__}
  346.  
  347. {$IFC NOT UsingIncludes}
  348.  END.
  349. {$ENDC}
  350.